
Introduction
This is a simple code snippet which is used to make an Auto Complete
ComboBox.
Using the code
Usage: Call the subroutine from within the ComboBox's
KeyPress event handler.
AutoComplete(ByRef cb As ComboBox, _
ByVal e As System.Windows.Forms.KeyPressEventArgs, _
Optional ByVal blnLimitToList As Boolean = False)
cb - ComboBox used to make the Auto Complete ComboBox.
e - System.Windows.Forms.KeyPressEventArgs
used to handle the keyboard inputs.
blnLimitToList - Optional Boolean value indicating
whether the user input is limited to the list values or not.
Code
Public Sub AutoComplete(ByRef cb As ComboBox, _
ByVal e As System.Windows.Forms.KeyPressEventArgs, _
Optional ByVal blnLimitToList As Boolean = False)
Dim strFindStr As String
If e.KeyChar = Chr(8) Then
If cb.SelectionStart <= 1 Then
cb.Text = ""
Exit Sub
End If
If cb.SelectionLength = 0 Then
strFindStr = cb.Text.Substring(0,
cb.Text.Length - 1)
Else
strFindStr = cb.Text.Substring(0,
cb.SelectionStart - 1)
End If
Else
If cb.SelectionLength = 0 Then
strFindStr = cb.Text & e.KeyChar
Else
strFindStr = cb.Text.Substring(0,
cb.SelectionStart) & e.KeyChar
End If
End If
Dim intIdx As Integer = -1
intIdx = cb.FindString(strFindStr)
If intIdx <> -1 Then
cb.SelectedText = ""
cb.SelectedIndex = intIdx
cb.SelectionStart = strFindStr.Length
cb.SelectionLength = cb.Text.Length
e.Handled = True
Else
If blnLimitToList = True Then
e.Handled = True
Else
e.Handled = False
End If
End If
End Sub
History
- Released on July 30th, 2005.